/**
 *  代码中路由统一使用name属性跳转(不使用path属性)
 * menuType:
 * 1.全横屏模式
 * 2.左右布局模式
 * 3.内容布局模式
 * 99.只是菜单模块类型
 */

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

//组件加载操作
export const _import = file => () =>
    import ("@views/" + file + ".vue")
    // 全局路由(无需嵌套上左右整体布局)
export const globalRoutes = [{
        path: '/404',
        component: _import('common/404'),
        name: '404',
        meta: {
            title: '404未找到'
        }
    },
    {
        path: '/login',
        component: _import('common/login'),
        name: 'login',
        meta: {
            title: '登录'
        }
    }

]

// 主入口路由(需嵌套上左右整体布局)
export const mainRoutes = {
    path: '/',
    component: _import('main/index'),
    name: 'main',
    meta: {
        title: '主入口整体布局'
    },
    children: [],
}

const router = new VueRouter({
    mode: 'history',
    scrollBehavior: () => ({
        y: 0
    }),
    isAddDynamicMenuRoutes: false, // 是否已经添加动态(菜单)路由
    routes: globalRoutes.concat(mainRoutes)
})

// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err)

}

export default router